Классификатор C4.5 и три его модификации: с оптимизацией гиперпараметра m, гиперпараметра cf и с одновременной оптимизацией обоих гиперпараметров. Эти четыре классификатора сравнивались на 14 наборах данных. На каждом датасете был посчитан AUC каждого классификатора. Данные записаны в файле: AUCs.txt Используя критерий знаковых рангов, проведите попарное сравнение каждого классификатора с каждым. Выберите два классификатора, различие между которыми наиболее статистически значимо.
Сравнивая 4 классификатора между собой, мы проверили 6 гипотез. Давайте сделаем поправку на множественную проверку. Начнём с метода Холма. Сколько гипотез можно отвергнуть на уровне значимости 0.05 после поправки этим методом?
Сколько гипотез можно отвергнуть на уровне значимости 0.05 после поправки методом Бенджамини-Хохберга?
In [44]:
import pandas as pd
import numpy as np
from scipy.stats import pearsonr
from statsmodels.sandbox.stats.multicomp import multipletests
from scipy import stats
In [45]:
data = pd.read_csv('AUCs.txt', sep = '\t')
data
Out[45]:
In [46]:
data.shape
Out[46]:
In [47]:
data.describe()
Out[47]:
In [48]:
d = [data.iloc[:, 1].values, data.iloc[:, 2].values, data.iloc[:, 3].values, data.iloc[:, 4].values]
rank_data = []
for i in xrange(len(d) - 1):
for j in xrange(i+1, len(d)):
stat, p = stats.wilcoxon(d[i], d[j])
rank_data.append([data.columns[i+1], data.columns[j+1], stat, p])
rank_df = pd.DataFrame.from_records(rank_data)
rank_df.columns = ['alg1', 'alg2', 'stat', 'p']
rank_df
Out[48]:
In [49]:
(rank_df.p < 0.05).value_counts()
Out[49]:
In [58]:
reject_holm, p_corrected_holm, a1, a2 = multipletests(rank_df.p,
alpha = 0.05,
method = 'holm')
rank_df['p_corrected_holm'] = p_corrected_holm
rank_df['reject_holm'] = reject_holm
reject_bh, p_corrected_vh, a1, a2 = multipletests(rank_df.p,
alpha = 0.05,
method = 'fdr_bh')
rank_df['p_corrected_bh'] = p_corrected_vh
rank_df['reject_bh'] = reject_bh
In [59]:
rank_df.reject_holm.value_counts()
Out[59]:
In [60]:
rank_df.reject_bh.value_counts()
Out[60]:
In [61]:
rank_df
Out[61]:
In [ ]: